package com.pine.service.core;

import com.pine.common.beans.request.PageRequest;
import com.pine.common.beans.response.PageResponse;

import java.util.List;

/**
 * 查询服务
 *
 * @author pine manage
 * @since 2024-08-09
 */
public interface QueryService<QueryRequest, QueryResponse> {

    /**
     * 通过唯一键查询单个数据
     *
     * @param uniqueKey 唯一键
     * @return 单个数据查询响应结果
     */
    QueryResponse getOneByUniqueKey(Object uniqueKey, String column);

    /**
     * 查询信息（不分页）
     *
     * @param request 请求
     * @return PageResponse 响应
     */
    List<QueryResponse> list(QueryRequest request);

    /**
     * 查询信息（分页）
     *
     * @param request 请求
     * @return PageResponse 响应
     */
    PageResponse<QueryResponse> listPages(PageRequest<QueryRequest> request);
}
